/**
 * 
 */
package br.gov.mi.corporativo.dominio.boundary.comum.pessoadocumento;

import java.util.Date;
import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;
import br.gov.mi.corporativo.dominio.entidade.comum.PessoaDocumento;


@Path("documentos")
public class PessoaDocumentoRestAdapter extends SpringBeanAutowiringSupport {


	@Autowired
	private PessoaDocumentoEndPoint service;
	
	@GET
	@Produces({MediaType.APPLICATION_JSON})
	public Iterable<PessoaDocumento> recuperarTodos(){
		return service.recuperarTodos();
	}
	
	@GET
	@Path("id/{idPessoaDocumento}")
	@Produces({MediaType.APPLICATION_JSON})
	public PessoaDocumento recuperarPorIdPessoaDocumento(@PathParam("idPessoaDocumento")Long idPessoaDocumento){
		return service.recuperarPorIdPessoaDocumento(idPessoaDocumento);
	}
	
	@GET
	@Path("municipio/{municipio}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaDocumento> recuperarPorMunicipio(@PathParam("municipio")Long municipio){
		return service.recuperarPorMunicipio(municipio);
	}
	
	@GET
	@Path("tipoDocumento/{tipoDocumento}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaDocumento> recuperarPorTipoDocumento(@PathParam("tipoDocumento")Long tipoDocumento){
		return service.recuperarPorTipoDocumento(tipoDocumento);
	}
	
	@GET
	@Path("uf/{uf}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaDocumento> recuperarPorUf(@PathParam("uf")Long uf){
		return service.recuperarPorUf(uf);
	}
	
	@GET
	@Path("pessoa/{pessoa}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaDocumento> recuperarPorPessoa(@PathParam("pessoa")Long pessoa){
		return service.recuperarPorPessoa(pessoa);
	}
	
	@GET
	@Path("nrDocumento/{nrDocumento}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaDocumento> recuperarPorNrDocumento(@PathParam("nrDocumento")String nrDocumento){
		return service.recuperarPorNrDocumento (nrDocumento);
	}
	
	@GET
	@Path("nrSecao/{nrSecao}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaDocumento> recuperarPorNrSecao(@PathParam("nrSecao")Long nrSecao){
		return service.recuperarPorNrSecao (nrSecao);
	}
	
	@GET
	@Path("nrZona/{nrZona}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaDocumento> recuperarPorNrZona(@PathParam("nrZona")Long nrZona){
		return service.recuperarPorNrZona (nrZona);
	}
	
	@GET
	@Path("dtEmissao/{dtEmissao}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaDocumento> recuperarPorDtEmissao(@PathParam("dtEmissao")Date dtEmissao){
		return service.recuperarPorDtEmissao (dtEmissao);
	}
	
	@GET
	@Path("dtValidade/{dtValidade}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaDocumento> recuperarPorDtValidade(@PathParam("dtValidade")Date dtValidade){
		return service.recuperarPorDtValidade (dtValidade);
	}
	
	@GET
	@Path("stRegistro/{stRegistro}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaDocumento> recuperarPorStRegistro(@PathParam("stRegistro")String stRegistro){
		return service.recuperarPorStRegistro (stRegistro);
	}

}
